home *** CD-ROM | disk | FTP | other *** search
/ Tech Win 1996 July / CD [TECH_B].bin / tech_b / delphi / unit5_2.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1996-04-21  |  2.7 KB  |  128 lines

  1. unit Unit5_2;
  2.  
  3. interface
  4.  
  5. uses
  6.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  7.   Forms, Dialogs, StdCtrls, ExtCtrls;
  8.  
  9. type
  10.   TForm2 = class(TForm)
  11.     Bou1: TShape;
  12.     Shape3: TShape;
  13.     Shape1: TShape;
  14.     Shape2: TShape;
  15.     Shape4: TShape;
  16.     Shape5: TShape;
  17.     Jun1: TLabel;
  18.     Maru1: TShape;
  19.     Label1: TLabel;
  20.     Tokuten: TLabel;
  21.     procedure FormCreate(Sender: TObject);
  22.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  23.   private
  24.     { Private 宣言 }
  25.   public
  26.     { Public 宣言 }
  27.     procedure Push(Position : Integer);
  28.     procedure Seikai(UpHeight : Integer);
  29.     procedure HuSeikai(UpHeight : Integer);
  30.     procedure Clear;
  31.   end;
  32.  
  33. var
  34.   Form2: TForm2;
  35.  
  36. implementation
  37.  
  38. {$R *.DFM}
  39.  
  40. procedure TForm2.FormCreate(Sender: TObject);
  41. begin
  42.      {得点の表示を0にする}
  43.      Tokuten.Caption := '0';
  44. end;
  45.  
  46. procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
  47. begin
  48.      Action := caFree;
  49. end;
  50.  
  51. procedure TForm2.Push(Position : Integer);
  52. Begin
  53.      {1番ならバックの色をclLimeに}
  54.      If Position = 1 Then
  55.         Color := clLime;
  56.      Maru1.Visible := True;
  57.      Bou1.Visible := True;
  58.      Jun1.Caption := IntToStr(Position);
  59. End;
  60.  
  61. procedure TForm2.Seikai(UpHeight : Integer);
  62. var
  63.    i : Integer;
  64.    f : Real;
  65.    t : LongInt;
  66. begin
  67.      {10問正解している場合はパス}
  68.      If Tokuten.Caption = '10000' Then
  69.         Exit;
  70.  
  71.      {移動する量の10分の1}
  72.      f := UpHeight / 10;
  73.      For i := 1 To 10 Do
  74.      Begin
  75.           Top := Top - Round(f);
  76.           t := GetTickCount + 50;
  77.           Repeat
  78.                 Application.ProcessMessages;
  79.           Until t < GetTickCount;
  80.      End;
  81.  
  82.      Color := clBtnFace;
  83.  
  84.      Tokuten.Caption := IntToStr(StrToInt(Tokuten.Caption) + 1000);
  85.  
  86.      If Tokuten.Caption = '10000' Then
  87.           ShowMessage('おめでとうございます!!' + #10 + Caption + 'さんの優勝です!!');
  88.  
  89. End;
  90.  
  91. procedure TForm2.HuSeikai(UpHeight : Integer);
  92. var
  93.    i : Integer;
  94.    f : Real;
  95.    t : LongInt;
  96. begin
  97.      f := UpHeight / 10;
  98.  
  99.      While StrToInt(Tokuten.Caption) > 0 Do
  100.      Begin
  101.           t := GetTickCount + 500;
  102.           Repeat
  103.                 Application.ProcessMessages;
  104.           Until t < GetTickCount;
  105.  
  106.           For i := 1 To 10 Do
  107.           Begin
  108.                Top := Top + Round(f);
  109.                t := GetTickCount + 50;
  110.                Repeat
  111.                      Application.ProcessMessages;
  112.                Until t < GetTickCount;
  113.           End;
  114.  
  115.           Tokuten.Caption := IntToStr(StrToInt(Tokuten.Caption) - 1000);
  116.      End;
  117. End;
  118.  
  119. procedure TForm2.Clear;
  120. begin
  121.      Color := clBtnFace;
  122.      Maru1.Visible := False;
  123.      Bou1.Visible := False;
  124.      Jun1.Caption := '';
  125. end;
  126.  
  127. end.
  128.